package com.atguigu.gmall.product.client;

import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.model.product.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@FeignClient(value = "service-product")
public interface ProductFeignClient {

    //    1、根据skuId查询sku_info  根据skuId查询sku_image  /inner：内部资源
    @GetMapping("/api/product/inner/getSkuInfo/{skuId}")
    SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId);

    //2:查询实时价格   优化的时候 不要放进缓存中
    @GetMapping("/api/product/inner/getPrice/{skuId}")
    BigDecimal getPrice(@PathVariable("skuId") Long skuId);

    //3、根据category3Id查询一二三级分类
    @GetMapping("/api/product/inner/getCategoryView/{category3Id}")
    BaseCategoryView getCategoryView(@PathVariable("category3Id") Long category3Id);

    //4、根据spuId查询spu_sale_attr_value(被选中项）  商品ID spu  库存ID
    @GetMapping("/api/product/inner/getSpuSaleAttrValue/{spuId}/{skuId}")
    List<SpuSaleAttr> getSpuSaleAttrValue(@PathVariable("spuId") Long spuId,
                                          @PathVariable("skuId") Long skuId);

    //5、skuId与销售属性组合
    @GetMapping("/api/product/inner/spuValueIdsMap/{spuId}")
    Map spuValueIdsMap(@PathVariable("spuId") Long spuId);

    //首页商品分类实现
    @GetMapping("/api/product/inner/getBaseCategoryList")
    List<BaseCategoryView> getBaseCategoryList();

    //查询品牌
    @GetMapping("/api/product/inner/getBaseTrademarkById/{tmId}")
    BaseTrademark getBaseTrademarkById(@PathVariable Long tmId);

    //根据skuId 查询平台属性及属性值
    @GetMapping("/api/product/inner/getSkuAttrValueList/{skuId}")
    List<SkuAttrValue> getSkuAttrValueList(@PathVariable Long skuId);

}